10 REM COPYRIGHT 1987 COMPUTE! PUBLICATIONS, INC. - ALL RIGHTS RESERVED 20 XR=781:YR=782:SR=783:BO=53280:BA=BO+1:Q=12 30 NDX=198:IFPEEK(65530)=5THEN(null)15:XR=7:YR=8:SR=5:NDX=208 40 IFPEEK(65530)=164THENSR=2037:XR=2035:YR=2036:BO=65305:BA=65301:Q=14:NDX=239 50 PL=65520:POKEBO,0:POKEBA,0 60 IFPEEK(65530)<>164THENS=54272:FORN=STOS+24:POKEN,0:NEXT 70 AL$="QAZXSWEDCVFRTGBNHYUJMKIOLP" 80 PRINT"[147][156] COPYRIGHT 1987 COMPUTE! PUB., INC." 90 PRINTTAB(10)"ALL RIGHTS RESERVED":GOSUB840 100 PRINT""TAB(15)"WORD FIND" 110 INPUT"WOULD YOU LIKE A TIME LIMIT (Y/N)";TL$ 120 IFTL$<>"Y"ANDTL$<>"N"THEN120 130 IFTL$="N"THENTL$="200000":TL=0:GOTO170 140 INPUT"HOW MANY MINUTES (1-59)";TL:IFTL<1ORTL>59THEN140 145 IF TL<>INT(TL) THEN 140 150 TL=INT(TL):TL$=STR$(TL*100):TL$=RIGHT$(TL$,LEN(TL$)-1):TL=1 160 FORWW=1TO6-LEN(TL$):TT$=TT$+"0":NEXT:TL$=TT$+TL$ 170 GOSUB770:GOSUB680:GOSUB620:GOSUB460:GOSUB420 180 REM - MAIN LOOP - 190 TI$="000000":TU=0:WF=0 200 POKEYR,27:POKEXR,1:SYSPL:INPUT"[159]ROW ";RO$:RO=VAL(RO$) 210 IFRO<1THENBS=0:GOTO240 220 IFRO>20THENBS=1:GOTO240 230 GOSUB1060:GOTO250 240 POKEYR,27:POKEXR,1:SYSPL:PRINT"TOO ";BS$(BS):GOSUB1070:GOSUB1060:GOTO200 250 IFTI$>TL$THENTU=1:GOTO890 260 POKEYR,27:POKEXR,1:SYSPL:INPUT"COLUMN ";CO$:CO=VAL(CO$) 270 IFCO<1THENBS=0:GOTO300 280 IFCO>20THENBS=1:GOTO300 290 GOSUB1060:GOTO310 300 POKEYR,27:POKEXR,1:SYSPL:PRINT"TOO ";BS$(BS):GOSUB1070:GOSUB1060:GOTO250 310 F=0:FORI=1TONW:IFRO<>PY(I)ORCO<>PX(I)THEN330 320 F=2:IFT(I)=0THENX1=I:T(I)=1:F=1:I=NW 330 NEXT:IFF=1THEN360 340 C$="WRONG":IFF=2THENC$="THAT'S FOUND" 350 POKEYR,27:POKEXR,1:POKESR,0:SYSPL:PRINTC$:GOSUB1070:GOSUB1060:GOTO200 360 FORI=0TOLEN(W$(X1))-1:XP=3+PX(X1)+I*DX(TW(X1)) 370 YP=2+PY(X1)+I*DY(TW(X1)):GOSUB960 380 PRINT"[156]"MID$(W$(X1),I+1,1):GOSUB1030 390 NEXT:POKEYR,25:POKEXR,2+X1:SYSPL:PRINTW$(X1):WF=WF+1:IFWF=NWTHEN880 400 GOTO200 410 REM - FILL GRID - 420 FORY=1TO20:FORX=1TO20 430 IFA$(X,Y)=""THENA$(X,Y)=MID$(AL$,26*RND(1)+1,1) 440 XP=3+X:YP=2+Y:GOSUB960:PRINTA$(X,Y):NEXT:NEXT:RETURN 450 REM - POSITION WORDS - 460 PW=0 470 PW=PW+1 480 PX(PW)=INT(20*RND(1)+1):PY(PW)=INT(20*RND(1)+1) 490 DR=INT(8*RND(1)+1):TW(PW)=DR 500 CX=PX(PW)+LEN(W$(PW))*DX(DR):CY=PY(PW)+LEN(W$(PW))*DY(DR) 510 IFCX<1ORCX>20ORCY<1ORCY>20THEN480 520 F=0:FORCK=0TOLEN(W$(PW))-1 530 Z1$=MID$(W$(PW),CK+1,1):Z2$=A$(PX(PW)+CK*DX(DR),PY(PW)+CK*DY(DR)) 540 IFZ2$<>""ANDZ1$<>Z2$THENF=1 550 NEXT:IFF=1THEN480 560 FORCK=0TOLEN(W$(PW))-1 570 Z1$=MID$(W$(PW),CK+1,1):A$(PX(PW)+CK*DX(DR),PY(PW)+CK*DY(DR))=Z1$ 580 XP=25:YP=2+PW:GOSUB960:PRINTW$(PW);:NEXT 590 IFPW=NWTHENRETURN 600 GOTO470 610 REM - SORT BY LENGTH - 620 POKEYR,29:POKEXR,1:SYSPL:PRINT"SORTING" 630 F=0:FORI=1TONW-1 640 IFLEN(W$(I))20THEN770 780 PRINT"[147]ENTER EACH WORD BETWEEN 3 AND"Q 790 PRINT"CHARACTERS IN LENGTH:":FORI=1TONW 800 PRINTI"> ";:INPUTW$(I) 810 IFLEN(W$(I))<3ORLEN(W$(I))>QTHENPRINTCHR$(13)"[145][145][145]":GOTO800 820 NEXT:RETURN 830 REM - SET UP VARIABLES - 840 DIMA$(20,20),W$(20),PX(20),PY(20),DX(8),DY(8),TW(20),T(20) 850 FORI=1TO8:READDX(I),DY(I):NEXT:BS$(0)="SMALL ":BS$(1)="BIG ":RETURN 860 DATA 0,-1,1,-1,1,0,1,1,0,1,-1,1,-1,0,-1,-1 870 REM - SUBROUTINES - 880 GOSUB1070:GOSUB970 890 FORX1=1TONW:FORI=0TOLEN(W$(X1))-1 900 XP=3+PX(X1)+I*DX(TW(X1)):YP=2+PY(X1)+I*DY(TW(X1)):GOSUB960:PRINT""; 910 PRINTMID$(W$(X1),I+1,1) 920 GOSUB1030 930 NEXT:XP=25:YP=2+X1:GOSUB960:PRINTW$(X1):NEXT 940 POKENDX,0:FORPS=1TO5000:NEXT 950 PRINT"[147]"TAB(7)"YOU DIDN'T FINISH IN TIME.":GOTO990 960 POKESR,0:POKEYR,XP:POKEXR,YP:SYSPL:RETURN 970 PRINT"[147]":XP=14:YP=12:GOSUB960:PRINT"YOU DID IT!!" 980 IFTL=1THENPRINT"[149] AND YOU FINISHED IN TIME!" 990 XP=6:YP=17:GOSUB960:PRINT"PRESS SPACE BAR[146] TO PLAY AGAIN" 1000 GETA$:IFA$=" "THENRUN 1010 IFA$<>""THENPRINT"[147]":END 1020 GOTO1000 1030 IFPEEK(65530)=164THEN(null)7:(null)3,1000,5:RETURN 1040 POKES+5,64:POKES+6,0:POKES+24,15:POKES+1,100:POKES,0:POKES+4,129 1050 FORN=1TO22:NEXT:POKES+4,0:RETURN 1060 POKESR,0:POKEYR,27:POKEXR,1:SYSPL:PRINT" ":RETURN 1070 FORI=1TO1000:NEXT:RETURN